KFbxNode Class Reference

#include <kfbxnode.h>
Inheritance diagram for KFbxNode:
Inheritance graph
[legend]

List of all members.


Detailed Description

Represents an element in the scene graph.

A scene graph is a tree of KFbxNodes objects. The tree management services are self contained in this class.

Note:
The FBX SDK does not test the validity of the constructed scene graph. It is the responsabilty of the caller to make sure that it does not generate cyclic graphs in a node hierarchy.
Besides the tree management, this class defines all the properties required to describe the position of the object in the scene. This information include the basic Translation, Rotation and Scaling properties and the more advanced options for pivots, limits, and IK joints attributes such the stiffness and dampening.

When it is first created, the KFbxNode object is "empty" (i.e: it is an object without any graphical representation that only contains the position information). In this state, it can be used to represent parents in the node tree structure but not much more. The normal use of this type of objects is to add them an attribute that will specialize the node (see the "Node Attribute Management" section).

The node attribute is an object in itself and is connected to the the KFbxNode. This also means that the same node attribute can be shared among multiple nodes. KFbxCamera, KFbxLight, KFbxMesh, etc... are all node attributes and they all derive from the base class KFbxNodeAttribute.

Definition at line 109 of file kfbxnode.h.


Node Display Parameters

enum   EShadingMode {
   eHARD_SHADING,
   eWIRE_FRAME,
   eFLAT_SHADING,
   eLIGHT_SHADING,
   eTEXTURE_SHADING,
   eLIGHT_TEXTURE_SHADING
}
  Shading modes. More...
void  SetVisibility (bool pIsVisible)
  Set visibility.
bool  GetVisibility () const
  Get the current value of the Visibility property.
void  SetShadingMode (EShadingMode pShadingMode)
  Set the shading mode.
EShadingMode  GetShadingMode () const
  Get the shading mode.

Pivot Management

Pivots are used to specify translation, rotation and scaling centers in coordinates relative to a node's origin.

A node has two pivot contexts defined by the EPivotSet enumeration. The node's animation data can be converted from one pivot context to the other. Each context can be set to be either active or passive (reference). By default the two pivot contexts are passive. They need to be active to be processed during the evaluation of the node final transformation matrix. In its passive state, a pivot context can still be accessed to retrieve its content for any other required purpose. Each pivot context stores values (as KFbxVector4) for:

  • Rotation offset (Roff)
  • Rotation pivot (Rp)
  • Pre-rotation (Rpre)
  • Post-rotation (Rpost)
  • Scaling offset (Soff)
  • Scaling pivot (Sp)
  • Geometric translation (Gt)
  • Geometric rotation (Gr)
  • Geometric scaling (Gs)

These values combine in the matricial form to compute the World transform of the node using the formula:

World = ParentWorld * T * Roff * Rp * Rpre * R * Rpost * Rp-1 * Soff * Sp * S * Sp-1

The geometric tansformation (Gt * Gr * Gs) is applied only to the node attribute and after the node transformations. This transformation is not inherited across the node hierarchy.

Note:
Please refer to the FBX SDK programmers guide for more details.
The application of the pivots is performed by calling the method ConvertPivotAnimation(). Typically, you set-up the eDESTINATION_SET context to match what your system can directly support and leave at (0,0,0) the attributes that are not supported by your system. When the values of a specific attribute in the two contexts (source and destination) are identical, the system considers that no adjustment is required because the attribute is directly supported in the destination world.

Below is an example of code that shows how the pivot information could be setup before calling ConvertPivotAnimation().

 KFbxVector4 lZero(0,0,0);
 pNode->SetPivotState(KFbxNode::eSOURCE_SET, KFbxNode::ePIVOT_STATE_ACTIVE);
 pNode->SetPivotState(KFbxNode::eDESTINATION_SET, KFbxNode::ePIVOT_STATE_ACTIVE);
    
 ERotationOrder lRotationOrder;
 pNode->GetRotationOrder(KFbxNode::eSOURCE_SET , lRotationOrder);
 pNode->SetRotationOrder(KFbxNode::eDESTINATION_SET , lRotationOrder);

 // For cameras and lights (without targets) let's compensate the postrotation.
 if (pNode->GetCamera() || pNode->GetLight())
 {
    if (!pNode->GetTarget())
    {
        KFbxVector4 lRV(90, 0, 0);
        if (pNode->GetCamera())    
           lRV.Set(0, 90, 0);

        KFbxVector4 prV = pNode->GetPostRotation(KFbxNode::eSOURCE_SET);
        KgeRMatrix lSourceR;
        KgeRMatrix lR(lRV.mData[0], lRV.mData[1], lRV.mData[2]);
        KgeVector res(prV.mData[0], prV.mData[1], prV.mData[2]);

        // Rotation order don't affect post rotation, so just use the default XYZ order
        KMBRotationOrder rOrder;
        rOrder.V2M(lSourceR, *((KgeRVector*)res.mData));

        KgeMult(lR, lSourceR, lR);
        rOrder.M2V(*((KgeRVector*)res.mData), lR);
        prV.mData[0] = res.mData[0];
        prV.mData[1] = res.mData[1];
        prV.mData[2] = res.mData[2];
        pNode->SetPostRotation(KFbxNode::eSOURCE_SET, prV);
        pNode->GetLimits().SetRotationLimitActive(true);
    }

    // Point light do not need to be adjusted (since they radiate in all the directions).
    if (pNode->GetLight() && pNode->GetLight()->LightType.Get() == KFbxLight::ePOINT)
    {
        pNode->SetPostRotation(KFbxNode::eSOURCE_SET, KFbxVector4(0,0,0,0));
    }

    // apply Pre rotations only on bones / end of chains
    if(pNode->GetNodeAttribute() && pNode->GetNodeAttribute()->GetAttributeType() == KFbxNodeAttribute::eSKELETON
       || (pNode->GetMarker() && pNode->GetMarker()->GetType() == KFbxMarker::eFK_EFFECTOR)
       || (pNode->GetMarker() && pNode->GetMarker()->GetType() == KFbxMarker::eIK_EFFECTOR))
    {
        if(pNode->GetLimits().GetRotationLimitActive())
        {
            pNode->SetPreRotation(KFbxNode::eDESTINATION_SET, pNode->GetPreRotation(KFbxNode::eSOURCE_SET));
        }
                        
       // No pivots on bones
        pNode->SetRotationPivot(KFbxNode::eDESTINATION_SET, lZero);    
        pNode->SetScalingPivot(KFbxNode::eDESTINATION_SET,    lZero);    
        pNode->SetRotationOffset(KFbxNode::eDESTINATION_SET,lZero);    
        pNode->SetScalingOffset(KFbxNode::eDESTINATION_SET, lZero);
    }
    else
    {
        // any other type: no pre-rotation support but...
        pNode->SetPreRotation(KFbxNode::eDESTINATION_SET, lZero);
       
        // support for rotation and scaling pivots.
        pNode->SetRotationPivot(KFbxNode::eDESTINATION_SET, pNode->GetRotationPivot(KFbxNode::eSOURCE_SET));    
        pNode->SetScalingPivot(KFbxNode::eDESTINATION_SET, pNode->GetScalingPivot(KFbxNode::eSOURCE_SET));    
        // Rotation and scaling offset are supported
        pNode->SetRotationOffset(KFbxNode::eDESTINATION_SET, pNode->GetRotationOffset(KFbxNode::eSOURCE_SET));    
        pNode->SetScalingOffset(KFbxNode::eDESTINATION_SET, pNode->GetScalingOffset(KFbxNode::eSOURCE_SET));
        //
        // If we don't "support" scaling pivots, we can simply do:
        // pNode->SetRotationPivot(KFbxNode::eDESTINATION_SET, lZero);
        // pNode->SetScalingPivot(KFbxNode::eDESTINATION_SET, lZero);
     }


enum   EPivotSet {
   eSOURCE_SET,
   eDESTINATION_SET
}
  Pivot context identifier. More...
enum   EPivotState {
   ePIVOT_STATE_ACTIVE,
   ePIVOT_STATE_REFERENCE
}
  Pivot context state. More...
void  SetPivotState (EPivotSet pPivotSet, EPivotState pPivotState)
  Change the state of the pivot context.
void  GetPivotState (EPivotSet pPivotSet, EPivotState &pPivotState) const
  Get the pivot context state.
void  SetRotationOrder (EPivotSet pPivotSet, ERotationOrder pRotationOrder)
  Set rotation space Determine the rotation space (Euler or Spheric) and the rotation order.
void  GetRotationOrder (EPivotSet pPivotSet, ERotationOrder &pRotationOrder) const
  Get rotation order.
void  SetUseRotationSpaceForLimitOnly (EPivotSet pPivotSet, bool pUseForLimitOnly)
  Set rotation space for limit only.
bool  GetUseRotationSpaceForLimitOnly (EPivotSet pPivotSet) const
  Get rotation space for limit only.
void  SetRotationActive (bool pVal)
  Set the RotationActive state.
bool  GetRotationActive () const
  Get the RotationActive state.
void  SetUseQuaternionForInterpolation (EPivotSet pPivotSet, bool pUseQuaternion)
  Set the Quaternion interpolation mode.
bool  GetUseQuaternionForInterpolation (EPivotSet pPivotSet) const
  Get the Quaternion interpolation mode.
void  SetRotationStiffness (KFbxVector4 pRotationStiffness)
  Set the rotation stiffness.
KFbxVector4  GetRotationStiffness () const
  Get the rotation stiffness.
void  SetMinDampRange (KFbxVector4 pMinDampRange)
  Set the minimum damp range angles.
KFbxVector4  GetMinDampRange () const
  Get the minimum damp range angles.
void  SetMaxDampRange (KFbxVector4 pMaxDampRange)
  Set the maximum damp range angles.
KFbxVector4  GetMaxDampRange () const
  Get the maximum damp range angles.
void  SetMinDampStrength (KFbxVector4 pMinDampStrength)
  Set the minimum damp strength.
KFbxVector4  GetMinDampStrength () const
  Get the minimum damp strength.
void  SetMaxDampStrength (KFbxVector4 pMaxDampStrength)
  Set the maximum damp strength.
KFbxVector4  GetMaxDampStrength () const
  Get the maximum damp strength.
void  SetPreferedAngle (KFbxVector4 pPreferedAngle)
  Set the preferred angle.
KFbxVector4  GetPreferedAngle () const
  Get the preferred angle.
void  SetRotationOffset (EPivotSet pPivotSet, KFbxVector4 pVector)
  Set a translation offset for the rotation pivot.
KFbxVector4 GetRotationOffset (EPivotSet pPivotSet) const
  Get the translation offset for the rotation pivot.
void  SetRotationPivot (EPivotSet pPivotSet, KFbxVector4 pVector)
  Set rotation pivot.
KFbxVector4 GetRotationPivot (EPivotSet pPivotSet) const
  Get rotation pivot.
void  SetPreRotation (EPivotSet pPivotSet, KFbxVector4 pVector)
  Set pre-rotation in Euler angles.
KFbxVector4 GetPreRotation (EPivotSet pPivotSet) const
  Get pre-rotation in Euler angles.
void  SetPostRotation (EPivotSet pPivotSet, KFbxVector4 pVector)
  Set post-rotation in Euler angles.
KFbxVector4 GetPostRotation (EPivotSet pPivotSet) const
  Get post-rotation in Euler angles.
void  SetScalingOffset (EPivotSet pPivotSet, KFbxVector4 pVector)
  Set a translation offset for the scaling pivot.
KFbxVector4 GetScalingOffset (EPivotSet pPivotSet) const
  Get the translation offset for the scaling pivot.
void  SetScalingPivot (EPivotSet pPivotSet, KFbxVector4 pVector)
  Set scaling pivot.
KFbxVector4 GetScalingPivot (EPivotSet pPivotSet) const
  Get scaling pivot.
void  SetGeometricTranslation (EPivotSet pPivotSet, KFbxVector4 pVector)
  Set geometric translation The geometric translation is a local translation that is applied to a node attribute only.
KFbxVector4  GetGeometricTranslation (EPivotSet pPivotSet) const
  Get geometric translation.
void  SetGeometricRotation (EPivotSet pPivotSet, KFbxVector4 pVector)
  Set geometric rotation The geometric rotation is a local rotation that is applied to a node attribute only.
KFbxVector4  GetGeometricRotation (EPivotSet pPivotSet) const
  Get geometric rotation.
void  SetGeometricScaling (EPivotSet pPivotSet, KFbxVector4 pVector)
  Set geometric scaling The geometric scaling is a local scaling that is applied to a node attribute only.
KFbxVector4  GetGeometricScaling (EPivotSet pPivotSet) const
  Get geometric scaling.
void  ResetPivotSet (KFbxNode::EPivotSet pPivotSet)
  Reset a pivot set to the default pivot context.
void  ConvertPivotAnimation (EPivotSet pConversionTarget, double pFrameRate, bool pKeyReduce=true)
  Recursively convert the animation data according to pivot settings.
void  ConvertPivotAnimationRecursive (const char *pAnimStackName, EPivotSet pConversionTarget, double pFrameRate, bool pKeyReduce=true)
  This version is an improved version of the ConvertPivotAnimation().
void  ResetPivotSetAndConvertAnimation (double pFrameRate=30., bool pKeyReduce=false, bool pToNodeCenter=true, bool pForceResetLimits=false)
  Reset all the pivot sets to the default pivot context and convert the animation.
void  SetRotationPivotAsCenterRecursive (KFbxVector4 pParentGeometricOffset=KFbxVector4())
  Set rotation pivot as node center recursively.

Error Management

The same error object is shared among instances of this class.

enum   EError {
   eTAKE_NODE_ERROR,
   eNODE_NAME_CLASH,
   eMATERIAL_NAME_CLASH,
   eTEXTURE_NAME_CLASH,
   eVIDEO_NAME_CLASH,
   eNOT_A_CHILD,
   eCYCLIC_GRAPH,
   eINDEX_OUT_OF_RANGE,
   eATTRIBUTE_NOT_CONNECTED,
   eERROR_COUNT
}
  Error identifiers. More...
KError GetError ()
  Retrieve error object.
EError  GetLastErrorID () const
  Get last error code.
const char *  GetLastErrorString () const
  Get last error string.

Public Member Functions

virtual bool  GetAnimationInterval (KTime &pStart, KTime &pStop, KFbxAnimStack *pAnimStack=NULL, int pAnimLayerId=0)
  Find out start and end time of the animation curves for this node (and its children).
Node Tree Management
KFbxNode GetParent ()
  Get the parent node.
KFbxNode const *  GetParent () const
  Get the parent node.
bool  AddChild (KFbxNode *pNode)
  Add a child node and its underlying node tree.
KFbxNode RemoveChild (KFbxNode *pNode)
  Remove the child node.
int  GetChildCount (bool pRecursive=false) const
  Get the number of children nodes.
KFbxNode GetChild (int pIndex)
  Get child by index.
KFbxNode const *  GetChild (int pIndex) const
  Get child by index.
KFbxNode FindChild (char const *pName, bool pRecursive=true, bool pInitial=false)
  Finds a child node by name.
Node Target Management
The KFbxNode class allows the client to set a "follow" target node.

This target forces the node to re-align itself so it points to the target. By default, the node uses its X axis as the aiming constraint. A rotation offset can be added to change this behavior. While the default relative orientation to the target (the X axis) is sufficient for the FBX cameras (with a (0,0,0) rotation vector, they are aiming along the X axis), this rotation offset becomes particularly useful with the lights objects because their default orientation (when they have a 0,0,0 rotation vector) is to point along the -Y axis and they need to be adjusted with a 90-degree offset on the Z axis.

The KFbxNode class also permits the use of node to define an Up-vector. By default, the node's up vector points towards the Up node. If the Up node is not specified, then the node's Up vector points towards the Y axis. Here too, a rotation offset can be added to change the defaul behaviour.

Of course, these offsets can be applied to anything, not only the cameras and lights.

Note:
Objects in the FBX SDK are always created in the right handed, Y-Up system and need to be adjusted for any other axis system by explicitly convert them (the class KFbxAxisSystem can help in that process).


void  SetTarget (KFbxNode *pNode)
  The target must be part of the same scene and it cannot be itself.
KFbxNode GetTarget () const
  Get the target for this node.
void  SetPostTargetRotation (KFbxVector4 pVector)
  Set rotation offset from default relative orientation to target.
KFbxVector4  GetPostTargetRotation () const
  Get rotation offset from default relative orientation to target.
void  SetTargetUp (KFbxNode *pNode)
  The target up node must be part of the same scene and it cannot be itself.
KFbxNode GetTargetUp () const
  Get the target up node.
void  SetTargetUpVector (KFbxVector4 pVector)
  Set up vector offset from default relative target up vector.
KFbxVector4  GetTargetUpVector () const
  Get up vector offset from default relative target up vector.
UpdateId Management
virtual kFbxUpdateId  GetUpdateId (eFbxUpdateIdType pUpdateId=eUpdateId_Object) const
  Returns the update ID of this object.
Node Attribute Management
KFbxNodeAttribute SetNodeAttribute (KFbxNodeAttribute *pNodeAttribute)
  Set the node attribute.
KFbxNodeAttribute GetNodeAttribute ()
  Get the default node attribute.
KFbxNodeAttribute const *  GetNodeAttribute () const
  Get the default node attribute.
int  GetNodeAttributeCount () const
  Get the number of node attribute(s) connected to this node.
int  GetDefaultNodeAttributeIndex () const
  Get the index, in the list of connected node attributes, of the node attribute that is set to be the default one.
bool  SetDefaultNodeAttributeIndex (int pIndex)
  Set index of the default node attribute.
KFbxNodeAttribute GetNodeAttributeByIndex (int pIndex)
  Get the connected node attribute by specifying its index in the connection list.
KFbxNodeAttribute const *  GetNodeAttributeByIndex (int pIndex) const
  Get the connected node attribute by specifying its index in the connection list.
int  GetNodeAttributeIndex (KFbxNodeAttribute *pNodeAttribute) const
  Get the connection index of the specified node attribute.
bool  AddNodeAttribute (KFbxNodeAttribute *pNodeAttribute)
  Add the new node attribute to this node.
KFbxNodeAttribute RemoveNodeAttribute (KFbxNodeAttribute *pNodeAttribute)
  Remove the node attribute from the connection list of this node.
KFbxNodeAttribute RemoveNodeAttributeByIndex (int pIndex)
  Remove the node attribute, specified by the connection index, from the connection list of this node.
KFbxLodGroup GetLodGroup ()
  Get the default node attribute casted to a KFbxLodGroup pointer.
KFbxNull GetNull ()
  Get the default node attribute casted to a KFbxNull pointer.
KFbxMarker GetMarker ()
  Get the node attribute casted to a KFbxMarker pointer.
KFbxSkeleton GetSkeleton ()
  Get the node attribute casted to a KFbxSkeleton pointer.
KFbxGeometry GetGeometry ()
  Get the node attribute casted to a KFbxGeometry pointer.
KFbxMesh GetMesh ()
  Get the node attribute casted to a KFbxMesh pointer.
KFbxNurb GetNurb ()
  Get the node attribute casted to a KFbxNurb pointer.
KFbxNurbsSurface GetNurbsSurface ()
  Get the node attribute casted to a KFbxNurbsSurface pointer.
KFbxNurbsCurve GetNurbsCurve ()
  Get the node attribute casted to a KFbxNurbsCurve pointer.
KFbxTrimNurbsSurface GetTrimNurbsSurface ()
  Get the node attribute casted to a KFbxTrimNurbsSurface pointer.
KFbxSubdiv GetSubdiv ()
  Get the node attribute casted to a KFbxSubdiv pointer.
KFbxPatch GetPatch ()
  Get the node attribute casted to a KFbxPatch pointer.
KFbxCamera GetCamera ()
  Get the node attribute casted to a KFbxCamera pointer.
KFbxCameraSwitcher GetCameraSwitcher ()
  Get the node attribute casted to a KFbxCameraSwitcher pointer.
KFbxLight GetLight ()
  Get the node attribute casted to a KFbxLight pointer.
KFbxOpticalReference GetOpticalReference ()
  Get the node attribute casted to a KFbxOpticalReference pointer.
Default Animation Values
This set of functions provides direct access to default animation values in the default take node.

K_DEPRECATED void  SetDefaultT (const KFbxVector4 &pT)
  This method is deprecated and should be replaced with LclTranslation.Set(translation_value).
K_DEPRECATED KFbxVector4 GetDefaultT (KFbxVector4 &pT)
  This method is deprecated and should be replaced with translation_value = LclTranslation.Get().
K_DEPRECATED void  SetDefaultR (const KFbxVector4 &pR)
  This method is deprecated and should be replaced with LclRotation.Set(rotation_value).
K_DEPRECATED KFbxVector4 GetDefaultR (KFbxVector4 &pR)
  This method is deprecated and should be replaced with rotation_value = LclRotation.Get().
K_DEPRECATED void  SetDefaultS (const KFbxVector4 &pS)
  This method is deprecated and should be replaced with LclScaling.Set(scale_value).
K_DEPRECATED KFbxVector4 GetDefaultS (KFbxVector4 &pS)
  This method is deprecated and should be replaced with scale_value = LclScaling.Get().
void  SetDefaultVisibility (double pVisibility)
  This is an utility method to alter the value of the Visibility property that automatically checks for the validity of the property before attempting to set the value.
double  GetDefaultVisibility () const
  This is an utility method to access the value of the Visibility property that automatically checks for the validity of this property.
Transformation propagation
This set of functions provides direct access to the transformation propagations settings of the KFbxNode.

These settings determine how transformations must be applied when evaluating a node's transformation matrix. The possible values are:

  • eINHERIT_RrSs : Scaling of parent is applied in the child world after the local child rotation.
  • eINHERIT_RSrs : Scaling of parent is applied in the parent world.
  • eINHERIT_Rrs : Scaling of parent does not affect the scaling of children.


void  SetTransformationInheritType (ETransformInheritType pInheritType)
  Sets how child transforms are inherited from parent transforms.
void  GetTransformationInheritType (ETransformInheritType &pInheritType) const
  Get transformation inherit type.
Access to translation, rotation and scaling local and global vectors.
This whole section contains deprecated functions.

All these values should be retrieved from the Evaluator (KFbxEvaluator) object connected to the scene to guarantee that the animation layers are taken into account. To get the Local translation vector:

    KFbxVector4 lVector = lScene->GetEvaluator()->GetNodeLocalTransform(node).GetT();
The rotation and scaling vectors can be retrieved in the same way by replacing the call GetT() with GetR() and GetS() respectively.

K_DEPRECATED KFbxVector4 GetLocalTFromDefault (bool pApplyLimits=false)
  Gets the Local Translation from defaults.
K_DEPRECATED KFbxVector4 GetLocalTFromDefaultTake (bool pApplyLimits=false)
  This method is deprecated and should be replaced with a call to GetLocalTFromDefault.
K_DEPRECATED KFbxVector4 GetLocalRFromDefault (bool pApplyLimits=false)
  Gets the Local Rotation from defaults.
K_DEPRECATED KFbxVector4 GetLocalRFromDefaultTake (bool pApplyLimits=false)
  This method is deprecated and should be replaced with a call to GetLocalRFromDefault.
K_DEPRECATED KFbxVector4 GetLocalSFromDefault (bool pApplyLimits=false)
  Gets the Local Scale from defaults.
K_DEPRECATED KFbxVector4 GetLocalSFromDefaultTake (bool pApplyLimits=false)
  This method is deprecated and should be replaced with a call to GetLocalSFromDefault.
K_DEPRECATED KFbxXMatrix GetGlobalFromDefault (EPivotSet pPivotSet=eSOURCE_SET, bool pApplyTarget=false)
  Get the Global Transformation Matrix from the defaults.
K_DEPRECATED KFbxXMatrix GetGlobalFromDefaultTake (EPivotSet pPivotSet=eSOURCE_SET, bool pApplyTarget=false)
  This method is deprecated and should be replaced with a call to GetGlobalFromDefault.
K_DEPRECATED KFbxVector4 GetLocalTFromCurrentTake (KTime pTime, bool pApplyLimits=false)
  This method is deprecated and should be replaced with a call to GetLocalTFromAnim.
K_DEPRECATED KFbxVector4 GetLocalRFromCurrentTake (KTime pTime, bool pApplyLimits=false)
  This method is deprecated and should be replaced with a call to GetLocalRFromAnim.
K_DEPRECATED KFbxVector4 GetLocalSFromCurrentTake (KTime pTime, bool pApplyLimits=false)
  This method is deprecated and should be replaced with a call to GetLocalSFromAnim.
K_DEPRECATED KFbxXMatrix GetGlobalFromCurrentTake (KTime pTime, EPivotSet pPivotSet=eSOURCE_SET, bool pApplyTarget=false)
  This method is deprecated and should be replaced with a call to KFbxAnimEvaluator::GetNodeGlobalTransform or KFbxAnimEvaluator::GetNodeGlobalTransformFast.
Character Link
int  GetCharacterLinkCount () const
  Get number of character links.
bool  GetCharacterLink (int pIndex, KFbxCharacter **pCharacter, int *pCharacterLinkType, int *pNodeId, int *pNodeSubId)
  Get character link at given index.
int  FindCharacterLink (KFbxCharacter *pCharacter, int pCharacterLinkType, int pNodeId, int pNodeSubId) const
  Looks if the given character link exists on this node.
Material Management
int  AddMaterial (KFbxSurfaceMaterial *pMaterial)
  Add a material to this node.
bool  RemoveMaterial (KFbxSurfaceMaterial *pMaterial)
  Remove a material from this node.
int  GetMaterialCount () const
KFbxSurfaceMaterial GetMaterial (int pIndex) const
  Access a material on this node.
void  RemoveAllMaterials ()
  Remove all materials applied to this node.
int  GetMaterialIndex (char const *pName) const
  Find an applied material with the given name.

Public Attributes

Public and fast access Properties
KFbxTypedProperty< fbxDouble3 LclTranslation
  This property contains the translation information of the node.
KFbxTypedProperty< fbxDouble3 LclRotation
  This property contains the rotation information of the node.
KFbxTypedProperty< fbxDouble3 LclScaling
  This property contains the scaling information of the node.
KFbxTypedProperty< KFbxXMatrix GlobalTransform
  This property contains the global transform information of the node.
KFbxTypedProperty< fbxDouble1 Visibility
  This property contains the visibility information of the node.
KFbxTypedProperty< fbxDouble1 Weight
  This property contains the weight information of the node.
KFbxTypedProperty< fbxDouble3 PoleVector
  This property contains the pole vector information of the node.
KFbxTypedProperty< fbxDouble1 Twist
  This property contains the twist information of the node.
KFbxTypedProperty< fbxDouble3 WorldUpVector
  This property contains the world up vector information of the node.
KFbxTypedProperty< fbxDouble3 UpVector
  This property contains the up vector information of the node.
KFbxTypedProperty< fbxDouble3 AimVector
  This property contains the aim vector information of the node.
KFbxTypedProperty< fbxBool1 QuaternionInterpolate
  This property contains the quaternion interpolate flag of the node.
KFbxTypedProperty< fbxDouble3 RotationOffset
  This property contains the rotation offset information of the node.
KFbxTypedProperty< fbxDouble3 RotationPivot
  This property contains the rotation pivot information of the node.
KFbxTypedProperty< fbxDouble3 ScalingOffset
  This property contains the scaling offset information of the node.
KFbxTypedProperty< fbxDouble3 ScalingPivot
  This property contains the scaling pivot information of the node.
KFbxTypedProperty< fbxBool1 TranslationActive
  This property contains the translation active information of the node.
KFbxTypedProperty< fbxDouble3 Translation
  This property contains the translation information of the node.
KFbxTypedProperty< fbxDouble3 TranslationMin
  This property contains the min translation limit information of the node.
KFbxTypedProperty< fbxDouble3 TranslationMax
  This property contains the max translation limit information of the node.
KFbxTypedProperty< fbxBool1 TranslationMinX
  This property contains the flag which actives the x component of min translation limit of the node.
KFbxTypedProperty< fbxBool1 TranslationMinY
  This property contains the flag which actives the y component of min translation limit of the node.
KFbxTypedProperty< fbxBool1 TranslationMinZ
  This property contains the flag which actives the z component of min translation limit of the node.
KFbxTypedProperty< fbxBool1 TranslationMaxX
  This property contains the flag which actives the x component of max translation limit of the node.
KFbxTypedProperty< fbxBool1 TranslationMaxY
  This property contains the flag which actives the y component of max translation limit of the node.
KFbxTypedProperty< fbxBool1 TranslationMaxZ
  This property contains the flag which actives the z component of max translation limit of the node.
KFbxTypedProperty< ERotationOrder RotationOrder
  This property contains the rotation order information of the node.
KFbxTypedProperty< fbxBool1 RotationSpaceForLimitOnly
  This property contains the rotation space for limit only flag of the node.
KFbxTypedProperty< fbxDouble1 RotationStiffnessX
  This property contains the x value of the rotation stiffness of the node.
KFbxTypedProperty< fbxDouble1 RotationStiffnessY
  This property contains the y value of the rotation stiffness of the node.
KFbxTypedProperty< fbxDouble1 RotationStiffnessZ
  This property contains the z value of the rotation stiffness of the node.
KFbxTypedProperty< fbxDouble1 AxisLen
  This property contains axis length information of the node.
KFbxTypedProperty< fbxDouble3 PreRotation
  This property contains pre-rotation information of the node.
KFbxTypedProperty< fbxDouble3 PostRotation
  This property contains post-rotation information of the node.
KFbxTypedProperty< fbxBool1 RotationActive
  This property contains rotation active information of the node.
KFbxTypedProperty< fbxDouble3 RotationMin
  This property contains the min rotation limit information of the node.
KFbxTypedProperty< fbxDouble3 RotationMax
  This property contains the max rotation limit information of the node.
KFbxTypedProperty< fbxBool1 RotationMinX
  This property contains the flag which actives the x component of min rotation limit of the node.
KFbxTypedProperty< fbxBool1 RotationMinY
  This property contains the flag which actives the y component of min rotation limit of the node.
KFbxTypedProperty< fbxBool1 RotationMinZ
  This property contains the flag which actives the z component of min rotation limit of the node.
KFbxTypedProperty< fbxBool1 RotationMaxX
  This property contains the flag which actives the x component of max rotation limit of the node.
KFbxTypedProperty< fbxBool1 RotationMaxY
  This property contains the flag which actives the y component of max rotation limit of the node.
KFbxTypedProperty< fbxBool1 RotationMaxZ
  This property contains the flag which actives the z component of max rotation limit of the node.
KFbxTypedProperty
< ETransformInheritType
InheritType
  This property contains inherit type information of the node.
KFbxTypedProperty< fbxBool1 ScalingActive
  This property contains scaling active information of the node.
KFbxTypedProperty< fbxDouble3 Scaling
  This property contains scaling information of the node.
KFbxTypedProperty< fbxDouble3 ScalingMin
  This property contains the min scaling limit information of the node.
KFbxTypedProperty< fbxDouble3 ScalingMax
  This property contains the max scaling limit information of the node.
KFbxTypedProperty< fbxBool1 ScalingMinX
  This property contains the flag which actives the x component of min scaling limit of the node.
KFbxTypedProperty< fbxBool1 ScalingMinY
  This property contains the flag which actives the y component of min scaling limit of the node.
KFbxTypedProperty< fbxBool1 ScalingMinZ
  This property contains the flag which actives the z component of min scaling limit of the node.
KFbxTypedProperty< fbxBool1 ScalingMaxX
  This property contains the flag which actives the x component of max scaling limit of the node.
KFbxTypedProperty< fbxBool1 ScalingMaxY
  This property contains the flag which actives the y component of max scaling limit of the node.
KFbxTypedProperty< fbxBool1 ScalingMaxZ
  This property contains the flag which actives the z component of max scaling limit of the node.
KFbxTypedProperty< fbxDouble3 GeometricTranslation
  This property contains geometric translation information of the node.
KFbxTypedProperty< fbxDouble3 GeometricRotation
  This property contains geometric rotation information of the node.
KFbxTypedProperty< fbxDouble3 GeometricScaling
  This property contains geometric scaling information of the node.
KFbxTypedProperty< fbxDouble1 MinDampRangeX
  This property contains the x component of the minimum damp range angles of the node.
KFbxTypedProperty< fbxDouble1 MinDampRangeY
  This property contains the y component of the minimum damp range angles of the node.
KFbxTypedProperty< fbxDouble1 MinDampRangeZ
  This property contains the z component of the minimum damp range angles of the node.
KFbxTypedProperty< fbxDouble1 MaxDampRangeX
  This property contains the x component of the maximum damp range angles of the node.
KFbxTypedProperty< fbxDouble1 MaxDampRangeY
  This property contains the y component of the maximum damp range angles of the node.
KFbxTypedProperty< fbxDouble1 MaxDampRangeZ
  This property contains the z component of the maximum damp range angles of the node.
KFbxTypedProperty< fbxDouble1 MinDampStrengthX
  This property contains the x component of the minimum damp strength of the node.
KFbxTypedProperty< fbxDouble1 MinDampStrengthY
  This property contains the y component of the minimum damp strength of the node.
KFbxTypedProperty< fbxDouble1 MinDampStrengthZ
  This property contains the z component of the minimum damp strength of the node.
KFbxTypedProperty< fbxDouble1 MaxDampStrengthX
  This property contains the x component of the maximum damp strength of the node.
KFbxTypedProperty< fbxDouble1 MaxDampStrengthY
  This property contains the y component of the maximum damp strength of the node.
KFbxTypedProperty< fbxDouble1 MaxDampStrengthZ
  This property contains the z component of the maximum damp strength of the node.
KFbxTypedProperty< fbxDouble1 PreferedAngleX
  This property contains the x component of the preferred angle of the node.
KFbxTypedProperty< fbxDouble1 PreferedAngleY
  This property contains the y component of the preferred angle of the node.
KFbxTypedProperty< fbxDouble1 PreferedAngleZ
  This property contains the z component of the preferred angle of the node.
KFbxTypedProperty< fbxReference * >  LookAtProperty
  This property contains lookat property of the node.
KFbxTypedProperty< fbxReference * >  UpVectorProperty
  This property contains the up vector property of the node.
KFbxTypedProperty< fbxBool1 Show
  This property contains show information of the node.
KFbxTypedProperty< fbxBool1 NegativePercentShapeSupport
  This property contains negative percent shape support information of the node.
KFbxTypedProperty< fbxInteger1 DefaultAttributeIndex
  This property contains default attribute index information of the node.
KFbxTypedProperty< fbxBool1 Freeze
  This property contains manipulation state information of the node.
KFbxTypedProperty< fbxBool1 LODBox
  This property contains level of detail mode information of the node.

Member Enumeration Documentation

Shading modes.

These shading modes are not directly used by the FBX SDK but it is guaranteed that the information is carried to and from the FBX files. The typical context of using these modes is to affect the rendering of geometric objects (this is, of course, performed at the application level) and the possible definition for each mode is:

Enumerator:
eHARD_SHADING  Solid geometries rendered with smooth surfaces - using the system light.
eWIRE_FRAME  Geometries displayed in wire frame.
eFLAT_SHADING  Solid geometries rendered faceted - using the system light.
eLIGHT_SHADING  Solid geometries rendered with the scene lights.
eTEXTURE_SHADING  Solid geometries rendered with smooth textured surfaces - using system light.
eLIGHT_TEXTURE_SHADING  Solid geometries rendered with smooth textured surfaces and scene lights.

Definition at line 270 of file kfbxnode.h.

enum EPivotSet

Pivot context identifier.

Enumerator:
eSOURCE_SET  The source pivot context.
eDESTINATION_SET  The destination pivot context.

Definition at line 738 of file kfbxnode.h.

Pivot context state.

Enumerator:
ePIVOT_STATE_ACTIVE  The pivot context with this state is affecting the node's transform computation.
ePIVOT_STATE_REFERENCE  The pivot context with this state is not used during the node transform computation but can be accessed for reference purposes.

Definition at line 746 of file kfbxnode.h.

enum EError

Error identifiers.

Enumerator:
eTAKE_NODE_ERROR  This symbol is obsolete and will be removed in a future release.
eNODE_NAME_CLASH  This symbol is obsolete and will be removed in a future release.
eMATERIAL_NAME_CLASH  This symbol is obsolete and will be removed in a future release.
eTEXTURE_NAME_CLASH  This symbol is obsolete and will be removed in a future release.
eVIDEO_NAME_CLASH  This symbol is obsolete and will be removed in a future release.
eNOT_A_CHILD  This symbol is obsolete and will be removed in a future release.
eCYCLIC_GRAPH  This symbol is obsolete and will be removed in a future release.
eINDEX_OUT_OF_RANGE  The index argument is outside the allowed values.
eATTRIBUTE_NOT_CONNECTED  The requested node attribute is invalid or not connected to this node.
eERROR_COUNT 

Definition at line 1326 of file kfbxnode.h.


Member Function Documentation

KFbxNode* GetParent (  ) 

Get the parent node.

Returns:
Pointer to parent node or NULL if the current node has no parent.

KFbxNode const* GetParent (  )  const

Get the parent node.

Returns:
Pointer to parent node or NULL if the current node has no parent.

bool AddChild ( KFbxNode pNode  ) 

Add a child node and its underlying node tree.

Parameters:
pNode  Node we want to make child of this.
Returns:
true on success, false if pNode is NULL or the system is unable to make the connection.
Remarks:
If pNode already has a parent, first it is removed from current parent and then added to this one.

KFbxNode* RemoveChild ( KFbxNode pNode  ) 

Remove the child node.

Parameters:
pNode  The child node to be removed.
Returns:
The removed child node.

int GetChildCount ( bool  pRecursive = false  )  const

Get the number of children nodes.

Parameters:
pRecursive  If true the method will also count all the descendant children.
Returns:
Total number of children for this node.

KFbxNode* GetChild ( int  pIndex  ) 

Get child by index.

Parameters:
pIndex  The child index.
Returns:
Child node or NULL if pIndex is out of range (i.e: < 0 or > GetChildCount()).

KFbxNode const* GetChild ( int  pIndex  )  const

Get child by index.

Parameters:
pIndex  The child index.
Returns:
Child node or NULL if pIndex is out of range (i.e: < 0 or > GetChildCount()).

KFbxNode* FindChild ( char const *  pName,
bool  pRecursive = true,
bool  pInitial = false  
)

Finds a child node by name.

Parameters:
pName  Name of the searched child node.
pRecursive  Flag to request recursive calls.
pInitial  If set to true, the search compares the initial name of the node (see the KFbxObject class)
Returns:
Found child node or NULL if no child node with this name exists.

void SetTarget ( KFbxNode pNode  ) 

The target must be part of the same scene and it cannot be itself.

Parameters:
pNode  The target.

KFbxNode* GetTarget (  )  const

Get the target for this node.

Returns:
NULL if target isn't set.

void SetPostTargetRotation ( KFbxVector4  pVector  ) 

Set rotation offset from default relative orientation to target.

Parameters:
pVector  The rotation offset.

KFbxVector4 GetPostTargetRotation (  )  const

Get rotation offset from default relative orientation to target.

Returns:
The rotation offset.

void SetTargetUp ( KFbxNode pNode  ) 

The target up node must be part of the same scene and it cannot be itself.

Parameters:
pNode  The target.

KFbxNode* GetTargetUp (  )  const

Get the target up node.

Returns:
NULL if the target up model isn't set.

void SetTargetUpVector ( KFbxVector4  pVector  ) 

Set up vector offset from default relative target up vector.

Parameters:
pVector  The rotation offset.

KFbxVector4 GetTargetUpVector (  )  const

Get up vector offset from default relative target up vector.

Returns:
The up vector offset.

virtual kFbxUpdateId GetUpdateId ( eFbxUpdateIdType  pUpdateId = eUpdateId_Object  )  const [virtual]

Returns the update ID of this object.

Parameters:
pUpdateId  The update ID type.
Returns:
The update ID.

Reimplemented from KFbxObject.

void SetVisibility ( bool  pIsVisible  ) 

Set visibility.

Parameters:
pIsVisible  Node is visible in the scene if set to true.
Remarks:
For backward compatibility reasons, this method will also change the value of the Show property. This method expects to work with a valid Visibility property. The value of this property will be set to either 0 or 1 depending on the pIsVisible value.

bool GetVisibility (  )  const

Get the current value of the Visibility property.

Returns:
false if the Visibility property value is 0.0 and true for any other
Remarks:
This method expects the Visibility property to exist and be valid. If this condition is not met, the returned value will be false.

void SetShadingMode ( EShadingMode  pShadingMode  ) 

Set the shading mode.

Parameters:
pShadingMode  The shading mode.

EShadingMode GetShadingMode (  )  const

Get the shading mode.

Returns:
The currently set shading mode.

KFbxNodeAttribute* SetNodeAttribute ( KFbxNodeAttribute pNodeAttribute  ) 

Set the node attribute.

Parameters:
pNodeAttribute  Node attribute object
Returns:
Pointer to previous node attribute object. NULL if the node didn't have a node attribute or if the new node attribute is equal to the one currently set.
Remarks:
A node attribute can be shared between nodes.

If this node has more than one attribute (added via the AddAttribute() method), this call will destroy all, but the default node attribute.

KFbxNodeAttribute* GetNodeAttribute (  ) 

Get the default node attribute.

The default node attribute is the attribute that has been set by the call to SetNodeAttribute().

Returns:
Pointer to the default node attribute or NULL if the node doesn't have a node attribute.

KFbxNodeAttribute const* GetNodeAttribute (  )  const

Get the default node attribute.

The default node attribute is the attribute that has been set by the call to SetNodeAttribute(...).

Returns:
Pointer to the default node attribute or NULL if the node doesn't have a node attribute.

int GetNodeAttributeCount (  )  const

Get the number of node attribute(s) connected to this node.

int GetDefaultNodeAttributeIndex (  )  const

Get the index, in the list of connected node attributes, of the node attribute that is set to be the default one.

Returns:
Index of the default node attribute or -1 if there is no default node attribute set.

bool SetDefaultNodeAttributeIndex ( int  pIndex  ) 

Set index of the default node attribute.

Parameters:
pIndex  Identifies which of the connected node attributes is becoming the default one. This value represent the connection number of the node.
Returns:
true if the operation succeeds or false if the passed index is invalid. In this case, KFbxNode::GetLastErrorID() returns eINDEX_OUT_OF_RANGE.

KFbxNodeAttribute* GetNodeAttributeByIndex ( int  pIndex  ) 

Get the connected node attribute by specifying its index in the connection list.

Parameters:
pIndex  The connection number of the node.
Returns:
Pointer to corresponding node attribute or NULL if the index is out of range. In this case, KFbxNode::GetLastErrorID() returns eINDEX_OUT_OF_RANGE.

KFbxNodeAttribute const* GetNodeAttributeByIndex ( int  pIndex  )  const

Get the connected node attribute by specifying its index in the connection list.

Parameters:
pIndex  The connection number of the node.
Returns:
Pointer to corresponding node attribute or NULL if the index is out of range. In this case, KFbxNode::GetLastErrorID() returns eINDEX_OUT_OF_RANGE.

int GetNodeAttributeIndex ( KFbxNodeAttribute pNodeAttribute  )  const

Get the connection index of the specified node attribute.

This method will do a linear search of all the connected node attributes (from the last to the first connection) until it finds pNodeAttribue.

Parameters:
pNodeAttribute  The pointer to the node attribute.
Returns:
The connection number of the node attribute or -1 if pNodeAttribute is NULL or not connected to this node. For both failing conditions, KFbxNode::GetLastErrorID() returns eATTRIBUTE_NOT_CONNECTED.

bool AddNodeAttribute ( KFbxNodeAttribute pNodeAttribute  ) 

Add the new node attribute to this node.

If no other node attribute is already set as the default one, this new node attribute is automatically set as the default one.

Parameters:
pNodeAttribute  The pointer to a node attribute.
Returns:
true if the operation succeeded orfalse if the operation failed.
Remarks:
The failing conditions for this methods are:
  • The received object pointer is NULL.
  • The received object is already connected to this node.
  • An internal error prevented the connection to successfully complete.

KFbxNodeAttribute* RemoveNodeAttribute ( KFbxNodeAttribute pNodeAttribute  ) 

Remove the node attribute from the connection list of this node.

Parameters:
pNodeAttribute  The pointer to a node attribute.
Returns:
Pointer to the removed node attribute or NULL if the operation failed. In this case, KFbxNode::GetLastErrorID() returns eATTRIBUTE_NOT_CONNECTED.

KFbxNodeAttribute* RemoveNodeAttributeByIndex ( int  pIndex  ) 

Remove the node attribute, specified by the connection index, from the connection list of this node.

Parameters:
pIndex  Index of the node attribute.
Returns:
Pointer to the removed node attribute or NULL if the operation failed.
Remarks:
If the specified node attribute is also the default one, its predecessor in the connection list will become the new default node attribue. And if there are no more predecessors, the node DefaultNodeAttributeIndex is reset to -1.

KFbxLodGroup* GetLodGroup (  ) 

Get the default node attribute casted to a KFbxLodGroup pointer.

Returns:
Pointer to the lod group object.
Remarks:
If the type cast failed because there is not default node attribute set or it cannot be successfully casted, this method will return NULL.

KFbxNull* GetNull (  ) 

Get the default node attribute casted to a KFbxNull pointer.

Returns:
Pointer to the null object.
Remarks:
If the type cast failed because there is not default node attribute set or it cannot be successfully casted, this method will return NULL.

KFbxMarker* GetMarker (  ) 

Get the node attribute casted to a KFbxMarker pointer.

Returns:
Pointer to the marker object.
Remarks:
If the type cast failed because there is not default node attribute set or it cannot be successfully casted, this method will return NULL.

KFbxSkeleton* GetSkeleton (  ) 

Get the node attribute casted to a KFbxSkeleton pointer.

Returns:
Pointer to the skeleton object.
Remarks:
If the type cast failed because there is not default node attribute set or it cannot be successfully casted, this method will return NULL.

KFbxGeometry* GetGeometry (  ) 

Get the node attribute casted to a KFbxGeometry pointer.

Returns:
Pointer to the geometry object.
Remarks:
If the type cast failed because there is not default node attribute set or it cannot be successfully casted, this method will return NULL.

For this method to succeed, the node attribute's GetAttributeType() must returns one of the following:

KFbxMesh* GetMesh (  ) 

Get the node attribute casted to a KFbxMesh pointer.

Returns:
Pointer to the mesh object.
Remarks:
This method will try to process the default node attribute first. If it cannot find it, it will scan the list of connected node attributes and get the first object that is a KFbxNodeAttribute::eMESH.

If the above search failed to get a valid pointer or it cannot be successfully casted, this method will return NULL.

KFbxNurb* GetNurb (  ) 

Get the node attribute casted to a KFbxNurb pointer.

Returns:
Pointer to the nurb object.
Remarks:
This method will try to process the default node attribute first. If it cannot find it, it will scan the list of connected node attributes and get the first object that is a KFbxNodeAttribute::eNURB.

If the above search failed to get a valid pointer or it cannot be successfully casted, this method will return NULL.

KFbxNurbsSurface* GetNurbsSurface (  ) 

Get the node attribute casted to a KFbxNurbsSurface pointer.

Returns:
Pointer to the nurbs surface object.
Remarks:
This method will try to process the default node attribute first. If it cannot find it, it will scan the list of connected node attributes and get the first object that is a KFbxNodeAttribute::eNURBS_SURFACE.

If the above search failed to get a valid pointer or it cannot be successfully casted, this method will return NULL.

KFbxNurbsCurve* GetNurbsCurve (  ) 

Get the node attribute casted to a KFbxNurbsCurve pointer.

Returns:
Pointer to the nurbs curve object.
Remarks:
This method will try to process the default node attribute first. If it cannot find it, it will scan the list of connected node attributes and get the first object that is a KFbxNodeAttribute::eNURBS_CURVE.

If the above search failed to get a valid pointer or it cannot be successfully casted, this method will return NULL.

KFbxTrimNurbsSurface* GetTrimNurbsSurface (  ) 

Get the node attribute casted to a KFbxTrimNurbsSurface pointer.

Returns:
Pointer to the trim nurbs surface object.
Remarks:
This method will try to process the default node attribute first. If it cannot find it, it will scan the list of connected node attributes and get the first object that is a KFbxNodeAttribute::eTRIM_NURBS_SURFACE.

If the above search failed to get a valid pointer or it cannot be successfully casted, this method will return NULL.

KFbxSubdiv* GetSubdiv (  ) 

Get the node attribute casted to a KFbxSubdiv pointer.

Returns:
Pointer to the subdivision surface object.
Remarks:
This method will try to process the default node attribute first. If it cannot find it, it will scan the list of connected node attributes and get the first object that is a KFbxNodeAttribute::eSUBDIV.

If the above search failed to get a valid pointer or it cannot be successfully casted, this method will return NULL.

KFbxPatch* GetPatch (  ) 

Get the node attribute casted to a KFbxPatch pointer.

Returns:
Pointer to the patch object.
Remarks:
This method will try to process the default node attribute first. If it cannot find it, it will scan the list of connected node attributes and get the first object that is a KFbxNodeAttribute::ePATCH.

If the above search failed to get a valid pointer or it cannot be successfully casted, this method will return NULL.

KFbxCamera* GetCamera (  ) 

Get the node attribute casted to a KFbxCamera pointer.

Returns:
Pointer to the camera object.
Remarks:
If the type cast failed because there is not default node attribute set or it cannot be successfully casted, this method will return NULL.

KFbxCameraSwitcher* GetCameraSwitcher (  ) 

Get the node attribute casted to a KFbxCameraSwitcher pointer.

Returns:
Pointer to the camera switcher object.
Remarks:
If the type cast failed because there is not default node attribute set or it cannot be successfully casted, this method will return NULL.

KFbxLight* GetLight (  ) 

Get the node attribute casted to a KFbxLight pointer.

Returns:
Pointer to the light object.
Remarks:
If the type cast failed because there is not default node attribute set or it cannot be successfully casted, this method will return NULL.

KFbxOpticalReference* GetOpticalReference (  ) 

Get the node attribute casted to a KFbxOpticalReference pointer.

Returns:
Pointer to the optical reference object.
Remarks:
If the type cast failed because there is not default node attribute set or it cannot be successfully casted, this method will return NULL.

K_DEPRECATED void SetDefaultT ( const KFbxVector4 pT  ) 

This method is deprecated and should be replaced with LclTranslation.Set(translation_value).

K_DEPRECATED KFbxVector4& GetDefaultT ( KFbxVector4 pT  ) 

This method is deprecated and should be replaced with translation_value = LclTranslation.Get().

K_DEPRECATED void SetDefaultR ( const KFbxVector4 pR  ) 

This method is deprecated and should be replaced with LclRotation.Set(rotation_value).

K_DEPRECATED KFbxVector4& GetDefaultR ( KFbxVector4 pR  ) 

This method is deprecated and should be replaced with rotation_value = LclRotation.Get().

K_DEPRECATED void SetDefaultS ( const KFbxVector4 pS  ) 

This method is deprecated and should be replaced with LclScaling.Set(scale_value).

K_DEPRECATED KFbxVector4& GetDefaultS ( KFbxVector4 pS  ) 

This method is deprecated and should be replaced with scale_value = LclScaling.Get().

void SetDefaultVisibility ( double  pVisibility  ) 

This is an utility method to alter the value of the Visibility property that automatically checks for the validity of the property before attempting to set the value.

The exact same result could be achieved by the following code:

 KFbxNode* node; // we suppose this is a valid pointer
 double visibliltyValue = 0.5;
 if (node->Visibility.IsValid())
     KFbxSet <double> (node->Visibility, visibilityValue);
Parameters:
pVisibility  Altough the argument is a double and its value is not checked for invalid values, the FBX SDK assumes it will be a value in the range [0.0 - 1.0]. A value of 0.0 means invisible and anything else means visible.
Remarks:
This parameter is only effective if node visibility has been enabled with a call to KFbxNode::SetVisibility().

double GetDefaultVisibility (  )  const

This is an utility method to access the value of the Visibility property that automatically checks for the validity of this property.

The exact same result could be achieved by the following code:

 KFbxNode* node; // we suppose this is a valid pointer
 double lVisibility = 1.0;
 if (node->Visibility.IsValid())
     lVisibility = KFbxGet<double(node->lVisibility);
Returns:
The actual value stored in the Visibility property.
Remarks:
This parameter is only effective if node visibility has been enabled with a call to KFbxNode::SetVisibility().

void SetTransformationInheritType ( ETransformInheritType  pInheritType  ) 

Sets how child transforms are inherited from parent transforms.

Parameters:
pInheritType  One of the following values eINHERIT_RrSs, eINHERIT_RSrs or eINHERIT_Rrs

void GetTransformationInheritType ( ETransformInheritType pInheritType  )  const

Get transformation inherit type.

void SetPivotState ( EPivotSet  pPivotSet,
EPivotState  pPivotState  
)

Change the state of the pivot context.

Parameters:
pPivotSet  Specify which pivot context is manipulated.
pPivotState  The new state of the pivot contenxt.

void GetPivotState ( EPivotSet  pPivotSet,
EPivotState pPivotState  
) const

Get the pivot context state.

The returned value tells if this pivot context is used in the evaluation of the node transform or not.

Parameters:
pPivotSet  Specify which pivot context is queried.
pPivotState  The current state of the pivot set.

void SetRotationOrder ( EPivotSet  pPivotSet,
ERotationOrder  pRotationOrder  
)

Set rotation space Determine the rotation space (Euler or Spheric) and the rotation order.

Parameters:
pPivotSet  Specify which pivot context is manipulated.
pRotationOrder  The new value for the pivot rotation order.

void GetRotationOrder ( EPivotSet  pPivotSet,
ERotationOrder pRotationOrder  
) const

Get rotation order.

Parameters:
pPivotSet  Specify which pivot context is queried.
pRotationOrder  The current value of the pivot rotation order.

void SetUseRotationSpaceForLimitOnly ( EPivotSet  pPivotSet,
bool  pUseForLimitOnly  
)

Set rotation space for limit only.

Parameters:
pPivotSet  Specify which pivot context is manipulated.
pUseForLimitOnly  When set to true, the current rotation space (set with SetRotationOrder) define the rotation space for the limit only; leaving the rotation animation in Euler XYZ space. When set to false, the current rotation space defines the rotation space for both the limits and the rotation animation data.

bool GetUseRotationSpaceForLimitOnly ( EPivotSet  pPivotSet  )  const

Get rotation space for limit only.

Parameters:
pPivotSet  Specify which pivot context is queried.
Returns:
The current rotation space limit flag value.

void SetRotationActive ( bool  pVal  ) 

Set the RotationActive state.

Parameters:
pVal  The new state of the property.
Remarks:
When this flag is set to false, the RotationOrder, the Pre/Post rotation values and the rotation limits should be ignored.

bool GetRotationActive (  )  const

Get the RotationActive state.

Returns:
The value of the RotationActive flag.

void SetUseQuaternionForInterpolation ( EPivotSet  pPivotSet,
bool  pUseQuaternion  
)

Set the Quaternion interpolation mode.

Parameters:
pPivotSet  Specify which pivot context is manipulated.
pUseQuaternion  The new value for the flag.

bool GetUseQuaternionForInterpolation ( EPivotSet  pPivotSet  )  const

Get the Quaternion interpolation mode.

Parameters:
pPivotSet  Specify which pivot context is queried.
Returns:
The current state of the flag.

void SetRotationStiffness ( KFbxVector4  pRotationStiffness  ) 

Set the rotation stiffness.

The stiffness attribute is used by IK solvers to generate a resistance to a joint motion. The higher the stiffness the less it will rotate. Stiffness works in a relative sense: it determines the willingness of this joint to rotate with respect to the other joint in the IK chain.

Parameters:
pRotationStiffness  The rotation stiffness values are limited to the range [0, 100].

KFbxVector4 GetRotationStiffness (  )  const

Get the rotation stiffness.

Returns:
The currently set rotation stiffness values.

void SetMinDampRange ( KFbxVector4  pMinDampRange  ) 

Set the minimum damp range angles.

This attributes apply resistance to a joint rotation as it approaches the lower boundary of its rotation limits. This functionality allows joint motion to slow down smoothly until the joint reaches its rotation limits instead of stopping abruptly. The MinDampRange specifies when the deceleration should start.

Parameters:
pMinDampRange  Angle, in degrees, where deceleration should start

KFbxVector4 GetMinDampRange (  )  const

Get the minimum damp range angles.

Returns:
The currently set minimum damp range angles.

void SetMaxDampRange ( KFbxVector4  pMaxDampRange  ) 

Set the maximum damp range angles.

This attributes apply resistance to a joint rotation as it approaches the upper boundary of its rotation limits. This functionality allows joint motion to slow down smoothly until the joint reaches its rotation limits instead of stopping abruptly. The MaxDampRange specifies when the deceleration should start.

Parameters:
pMaxDampRange  Angle, in degrees, where deceleration should start

KFbxVector4 GetMaxDampRange (  )  const

Get the maximum damp range angles.

Returns:
The currently set maximum damp range angles.

void SetMinDampStrength ( KFbxVector4  pMinDampStrength  ) 

Set the minimum damp strength.

This attributes apply resistance to a joint rotation as it approaches the lower boundary of its rotation limits. This functionality allows joint motion to slow down smoothly until the joint reaches its rotation limits instead of stopping abruptly. The MinDampStrength defines the rate of deceleration.

Parameters:
pMinDampStrength  Values are limited to the range [0, 100].

KFbxVector4 GetMinDampStrength (  )  const

Get the minimum damp strength.

Returns:
The currently set minimum damp strength values.

void SetMaxDampStrength ( KFbxVector4  pMaxDampStrength  ) 

Set the maximum damp strength.

This attributes apply resistance to a joint rotation as it approaches the upper boundary of its rotation limits. This functionality allows joint motion to slow down smoothly until the joint reaches its rotation limits instead of stopping abruptly. The MaxDampStrength defines the rate of deceleration.

Parameters:
pMaxDampStrength  Values are limited to the range [0, 100].

KFbxVector4 GetMaxDampStrength (  )  const

Get the maximum damp strength.

Returns:
The currently set maximum damp strength values.

void SetPreferedAngle ( KFbxVector4  pPreferedAngle  ) 

Set the preferred angle.

The preferredAngle attribute defines the initial joint configuration used by a single chain IK solver to calculate the inverse kinematic solution.

Parameters:
pPreferedAngle  Angle in degrees

KFbxVector4 GetPreferedAngle (  )  const

Get the preferred angle.

Returns:
The currently set preferred angle.

void SetRotationOffset ( EPivotSet  pPivotSet,
KFbxVector4  pVector  
)

Set a translation offset for the rotation pivot.

The translation offset is in coordinates relative to the node's origin.

Parameters:
pPivotSet  Specify which pivot set to modify.
pVector  The X,Y and Z translation values (the 4th component of the KFbxVector4 is ignored).

KFbxVector4& GetRotationOffset ( EPivotSet  pPivotSet  )  const

Get the translation offset for the rotation pivot.

The translation offset is in coordinates relative to the node's origin.

Parameters:
pPivotSet  Specify which pivot set to to query the value.
Returns:
The X, Y and Z translation offset values (the 4th component of the KFbxVector4 is always 1).

void SetRotationPivot ( EPivotSet  pPivotSet,
KFbxVector4  pVector  
)

Set rotation pivot.

The rotation pivot is the center of rotation in coordinates relative to the node's origin.

Parameters:
pPivotSet  Specify which pivot set to modify.
pVector  The new position of the rotation pivot (the 4th component of the KFbxVector4 is ignored).

KFbxVector4& GetRotationPivot ( EPivotSet  pPivotSet  )  const

Get rotation pivot.

The rotation pivot is the center of rotation in coordinates relative to the node's origin.

Parameters:
pPivotSet  Specify which pivot set to query.
Returns:
The current position of the rotation pivot (the 4th component of the KFbxVector4 is always 1).

void SetPreRotation ( EPivotSet  pPivotSet,
KFbxVector4  pVector  
)

Set pre-rotation in Euler angles.

The pre-rotation is the rotation applied to the node before rotation animation data.

Parameters:
pPivotSet  Specify which pivot set to modify.
pVector  The X,Y,Z rotation values to set (the 4th component of the KFbxVector4 is ignored).

KFbxVector4& GetPreRotation ( EPivotSet  pPivotSet  )  const

Get pre-rotation in Euler angles.

The pre-rotation is the rotation applied to the node before rotation animation data.

Parameters:
pPivotSet  Specify which pivot set to query.
Returns:
The X,Y and Z rotation values (the 4th component of the KFbxVector4 is always 1).

void SetPostRotation ( EPivotSet  pPivotSet,
KFbxVector4  pVector  
)

Set post-rotation in Euler angles.

The post-rotation is the rotation applied to the node after the rotation animation data.

Parameters:
pPivotSet  Specify which pivot set to modify.
pVector  The X,Y,Z rotation values to set (the 4th component of the KFbxVector4 is ignored).

KFbxVector4& GetPostRotation ( EPivotSet  pPivotSet  )  const

Get post-rotation in Euler angles.

The post-rotation is the rotation applied to the node after the rotation animation data.

Parameters:
pPivotSet  Specify which pivot set to query.
Returns:
The X,Y and Z rotation values (the 4th component of the KFbxVector4 is always 1).

void SetScalingOffset ( EPivotSet  pPivotSet,
KFbxVector4  pVector  
)

Set a translation offset for the scaling pivot.

The translation offset is in coordinates relative to the node's origin.

Parameters:
pPivotSet  Specify which pivot set to modify.
pVector  The X,Y and Z translation values (the 4th component of the KFbxVector4 is ignored).

KFbxVector4& GetScalingOffset ( EPivotSet  pPivotSet  )  const

Get the translation offset for the scaling pivot.

The translation offset is in coordinates relative to the node's origin.

Parameters:
pPivotSet  Specify which pivot set to query the value.
Returns:
The X, Y and Z translation offset values (the 4th component of the KFbxVector4 is always 1).

void SetScalingPivot ( EPivotSet  pPivotSet,
KFbxVector4  pVector  
)

Set scaling pivot.

The scaling pivot is the center of scaling in coordinates relative to the node's origin.

Parameters:
pPivotSet  Specify which pivot set to modify.
pVector  The new position of the scaling pivot (the 4th component of the KFbxVector4 is ignored).

KFbxVector4& GetScalingPivot ( EPivotSet  pPivotSet  )  const

Get scaling pivot.

The scaling pivot is the center of scaling in coordinates relative to the node's origin.

Parameters:
pPivotSet  Specify which pivot set to query.
Returns:
The current position of the rotation pivot (the 4th component of the KFbxVector4 is always 1).

void SetGeometricTranslation ( EPivotSet  pPivotSet,
KFbxVector4  pVector  
)

Set geometric translation The geometric translation is a local translation that is applied to a node attribute only.

This translation is applied to the node attribute after the node transformations. This translation is not inherited across the node hierarchy.

Parameters:
pPivotSet  Specify which pivot set to modify.
pVector  The X, Y, and Z translation values (the 4th component of the KFbxVector4 is ignored).

KFbxVector4 GetGeometricTranslation ( EPivotSet  pPivotSet  )  const

Get geometric translation.

Parameters:
pPivotSet  Specify which pivot set to query.
Returns:
The current geometric translation (the 4th component of the KFbxVector4 is always 1).

void SetGeometricRotation ( EPivotSet  pPivotSet,
KFbxVector4  pVector  
)

Set geometric rotation The geometric rotation is a local rotation that is applied to a node attribute only.

This rotation is applied to the node attribute after the node transformations. This rotation is not inherited across the node hierarchy.

Parameters:
pPivotSet  Specify which pivot set to modify.
pVector  The X,Y and Z rotation values (the 4th component of the KFbxVector4 is ignored).

KFbxVector4 GetGeometricRotation ( EPivotSet  pPivotSet  )  const

Get geometric rotation.

Parameters:
pPivotSet  Specify which pivot set to query.
Returns:
The current geometric rotation (the 4th component of the KFbxVector4 is always 1).

void SetGeometricScaling ( EPivotSet  pPivotSet,
KFbxVector4  pVector  
)

Set geometric scaling The geometric scaling is a local scaling that is applied to a node attribute only.

This scaling is applied to the node attribute after the node transformations. This scaling is not inherited across the node hierarchy.

Parameters:
pPivotSet  Specify which pivot set to modify.
pVector  The X,Y and Z scale values (the 4th component of the KFbxVector4 is ignored).

KFbxVector4 GetGeometricScaling ( EPivotSet  pPivotSet  )  const

Get geometric scaling.

Parameters:
pPivotSet  Specify which pivot set to query.
Returns:
The current geometric scaling (the 4th component of the KFbxVector4 is always 1).

void ResetPivotSet ( KFbxNode::EPivotSet  pPivotSet  ) 

Reset a pivot set to the default pivot context.

Parameters:
pPivotSet  Pivot set to reset.
Remarks:
The default pivot context is a context with all the vector attributes set to (0,0,0) except the GeometricScaling attribute that is reset to (1,1,1).

void ConvertPivotAnimation ( EPivotSet  pConversionTarget,
double  pFrameRate,
bool  pKeyReduce = true  
)

Recursively convert the animation data according to pivot settings.

This method is still available for legacy reasons. Its use is limited to the processing of very old data coming from FBX v5 files and should not be used in any other case. Instead call the ConvertPivotAnimationRecursive().

Parameters:
pConversionTarget  If set to EPivotSet::eDESTINATION_SET, convert animation data from the EPivotSet::eSOURCE_SET pivot context to the EPivotSet::eDESTINATION_SET pivot context. Otherwise, the conversion is computed the other way around.
pFrameRate  Resampling frame rate in frames per second.
pKeyReduce  Apply or skip key reducing filter.
Remarks:
Due to the intrinsic properties of the mathematical operations performed, sometimes, it is necessary to resample animation curves to maintain the accurate conversion. When this resampling is required, the method will use the pFrameRate value to specify the number of samples. To avoid a huge number of keys in the animation curves, a constant key reducer filter (KFbxKFCurveFilterConstantKeyReducer) is automatically applied to all the affected curves to remove as much consecutive keys that have the same value. This filter is private and its settings cannot be changed. It is possible that, after the filtering pass, the animations curves do not contain keys anymore. This is a normal result and does not affect the overall results.

void ConvertPivotAnimationRecursive ( const char *  pAnimStackName,
EPivotSet  pConversionTarget,
double  pFrameRate,
bool  pKeyReduce = true  
)

This version is an improved version of the ConvertPivotAnimation().

It fully supports all the attributes defined in the pivot sets and can process animation data defined on different animation stack.

Parameters:
pAnimStackName  The name of animation stack on which the conversion will take place. If equals NULL or is an empty string, the first animation stack will be used.
pConversionTarget  If set to EPivotSet::eDESTINATION_SET, convert animation data from the EPivotSet::eSOURCE_SET pivot context to the EPivotSet::eDESTINATION_SET pivot context. Otherwise, the conversion is computed the other way around.
pFrameRate  Resampling frame rate in frames per second.
pKeyReduce  Apply or skip key reducing filter.
Remarks:
Due to the intrinsic properties of the mathematical operations performed, sometimes, it is necessary to resample animation curves to maintain the accurate conversion. When this resampling is required, the method will use the pFrameRate value to specify the number of samples. To avoid a huge number of keys in the animation curves, a constant key reducer filter (KFbxKFCurveFilterConstantKeyReducer) is automatically applied to all the affected curves to remove as much consecutive keys that have the same value. This filter is private and its settings cannot be changed. It is possible that, after the filtering pass, the animations curves do not contain keys anymore. This is a normal result and does not affect the overall results.

void ResetPivotSetAndConvertAnimation ( double  pFrameRate = 30.,
bool  pKeyReduce = false,
bool  pToNodeCenter = true,
bool  pForceResetLimits = false  
)

Reset all the pivot sets to the default pivot context and convert the animation.

Parameters:
pFrameRate  Resampling frame rate in frames per second.
pKeyReduce  Apply or skip key reducing filter.
pToNodeCenter,:  Reset pivots to node center if true, or retain pivot places if false.
pForceResetLimits  If true, this flag will reset all the Translation, Rotation and Scaling limits and clears the enabled flags.
Remarks:
The resulting animation will be visually equivalent and all the pivots will be cleared.

Will recursively convert the animation of all the children nodes.

The pForceResetLimits flag has a destructive behaviour and should be used only in very limited cases where the values of the limits are not required after the call to this method.

void SetRotationPivotAsCenterRecursive ( KFbxVector4  pParentGeometricOffset = KFbxVector4()  ) 

Set rotation pivot as node center recursively.

Parameters:
pParentGeometricOffset  Offset vector to be applied.

K_DEPRECATED KFbxVector4& GetLocalTFromDefault ( bool  pApplyLimits = false  ) 

Gets the Local Translation from defaults.

Parameters:
pApplyLimits  true if node limits are to be applied on result
Returns:
The Local Translation.

K_DEPRECATED KFbxVector4& GetLocalTFromDefaultTake ( bool  pApplyLimits = false  ) 

This method is deprecated and should be replaced with a call to GetLocalTFromDefault.

Parameters:
pApplyLimits 

K_DEPRECATED KFbxVector4& GetLocalRFromDefault ( bool  pApplyLimits = false  ) 

Gets the Local Rotation from defaults.

Parameters:
pApplyLimits  true if node limits are to be applied on result
Returns:
The Local Rotation.

K_DEPRECATED KFbxVector4& GetLocalRFromDefaultTake ( bool  pApplyLimits = false  ) 

This method is deprecated and should be replaced with a call to GetLocalRFromDefault.

Parameters:
pApplyLimits 

K_DEPRECATED KFbxVector4& GetLocalSFromDefault ( bool  pApplyLimits = false  ) 

Gets the Local Scale from defaults.

Parameters:
pApplyLimits  true if node limits are to be applied on result
Returns:
The Local Scale.

K_DEPRECATED KFbxVector4& GetLocalSFromDefaultTake ( bool  pApplyLimits = false  ) 

This method is deprecated and should be replaced with a call to GetLocalSFromDefault.

Parameters:
pApplyLimits 

K_DEPRECATED KFbxXMatrix& GetGlobalFromDefault ( EPivotSet  pPivotSet = eSOURCE_SET,
bool  pApplyTarget = false  
)

Get the Global Transformation Matrix from the defaults.

Parameters:
pPivotSet  The pivot set to take into account
pApplyTarget  Applies the necessary transform to align into the target node
Returns:
The Global Transformation Matrix

K_DEPRECATED KFbxXMatrix& GetGlobalFromDefaultTake ( EPivotSet  pPivotSet = eSOURCE_SET,
bool  pApplyTarget = false  
)

This method is deprecated and should be replaced with a call to GetGlobalFromDefault.

Parameters:
pPivotSet 
pApplyTarget 

K_DEPRECATED KFbxVector4& GetLocalTFromCurrentTake ( KTime  pTime,
bool  pApplyLimits = false  
)

This method is deprecated and should be replaced with a call to GetLocalTFromAnim.

Parameters:
pTime 
pApplyLimits 

K_DEPRECATED KFbxVector4& GetLocalRFromCurrentTake ( KTime  pTime,
bool  pApplyLimits = false  
)

This method is deprecated and should be replaced with a call to GetLocalRFromAnim.

Parameters:
pTime 
pApplyLimits 

K_DEPRECATED KFbxVector4& GetLocalSFromCurrentTake ( KTime  pTime,
bool  pApplyLimits = false  
)

This method is deprecated and should be replaced with a call to GetLocalSFromAnim.

Parameters:
pTime 
pApplyLimits 

K_DEPRECATED KFbxXMatrix& GetGlobalFromCurrentTake ( KTime  pTime,
EPivotSet  pPivotSet = eSOURCE_SET,
bool  pApplyTarget = false  
)

This method is deprecated and should be replaced with a call to KFbxAnimEvaluator::GetNodeGlobalTransform or KFbxAnimEvaluator::GetNodeGlobalTransformFast.

Parameters:
pTime 
pPivotSet 
pApplyTarget 

int GetCharacterLinkCount (  )  const

Get number of character links.

Returns:
The number of character links.

bool GetCharacterLink ( int  pIndex,
KFbxCharacter **  pCharacter,
int pCharacterLinkType,
int pNodeId,
int pNodeSubId  
)

Get character link at given index.

Parameters:
pIndex  Index of character link.
pCharacter  Pointer to receive linked character if function succeeds.
pCharacterLinkType  Pointer to receive character link type if function succeeds, cast to ECharacterLinkType.
pNodeId  Pointer to receive the node ID if function succeeds. This ID should be casted to ECharacterNodeId type when the character link type is eCharacterLink or eControlSetLink else to the EEffectorNodeId type if the character link type is eControlSetEffector or eControlSetEffectorAux.
pNodeSubId  For internal use.
Returns:
false if the index is out of range or any of the pointer arguments is NULL.

int FindCharacterLink ( KFbxCharacter pCharacter,
int  pCharacterLinkType,
int  pNodeId,
int  pNodeSubId  
) const

Looks if the given character link exists on this node.

Parameters:
pCharacter  Character searched.
pCharacterLinkType  Character link type searched. Its value must be one of the ECharacterLinkType symbols..
pNodeId  Node ID searched. If pCharacterLinkType is eCharacterLink or eControlSetLink the pNodeId value is casted to the ECharacterNodeId type. If the pCharacterLinkType is eControlSetEffector or eControlSetEffectorAux then the pNodeId is casted to the EEffectorNodeId type.
pNodeSubId  For internal use.
Returns:
Index of found character link if it exists, -1 otherwise.

virtual bool GetAnimationInterval ( KTime pStart,
KTime pStop,
KFbxAnimStack pAnimStack = NULL,
int  pAnimLayerId = 0  
) [virtual]

Find out start and end time of the animation curves for this node (and its children).

Parameters:
pStart  Reference to store the start time. pStart is overwritten with a new value only if the found start time is lower than pStart current value. Therefore, it is important to initialize pStart with KTIME_INFINITE.
pStop  Reference to store end time. pStop is overwritten with a new value only if the found stop time is higher than pStop current value. Therefore, it is important to initialize pStop with KTIME_MINUS_INFINITE.
pAnimStack  Animation stack where to retrieve animation curves.
pAnimLayerId  Specific animation layer on the animStack to use.
Returns:
true on success, false otherwise.
Remarks:
If pAnimStack is left NULL, the function will try to get the first AnimStack that is connected to the scene. pAnimLayerId represent the index of the connection. For example, the call:
    lNode->GetAnimationInterval(start, stop, myStack, 3);
will scan all the animation curves of this node, and it's children, that are defined on the third animation layer of myStack.

int AddMaterial ( KFbxSurfaceMaterial pMaterial  ) 

Add a material to this node.

Parameters:
pMaterial  The material to add.
Returns:
non-negative index of added material, or -1 on error.

bool RemoveMaterial ( KFbxSurfaceMaterial pMaterial  ) 

Remove a material from this node.

Parameters:
pMaterial  The material to remove.
Returns:
true on success, false otherwise

int GetMaterialCount (  )  const
Returns:
The number of materials applied to this node

KFbxSurfaceMaterial* GetMaterial ( int  pIndex  )  const

Access a material on this node.

Parameters:
pIndex  Valid range is [0, GetMaterialCount() - 1]
Returns:
The pIndex-th material, or NULL if pIndex is invalid.

void RemoveAllMaterials (  ) 

Remove all materials applied to this node.

int GetMaterialIndex ( char const *  pName  )  const

Find an applied material with the given name.

Parameters:
pName  The requested name
Returns:
an index to a material, or -1 if no applied material has the requested name.

KError& GetError (  ) 

Retrieve error object.

Returns:
Reference to error object.

EError GetLastErrorID (  )  const

Get last error code.

Returns:
Last error code.

const char* GetLastErrorString (  )  const

Get last error string.

Returns:
Textual description of the last error.

Member Data Documentation

This property contains the translation information of the node.

To access this property do: LclTranslation.Get(). To set this property do: LclTranslation.Set(fbxDouble3).

Default value is 0.,0.,0.

Definition at line 1365 of file kfbxnode.h.

This property contains the rotation information of the node.

To access this property do: LclRotation.Get(). To set this property do: LclRotation.Set(fbxDouble3).

Default value is 0.,0.,0.

Definition at line 1374 of file kfbxnode.h.

This property contains the scaling information of the node.

To access this property do: LclScaling.Get(). To set this property do: LclScaling.Set(fbxDouble3).

Default value is 1.,1.,1.

Definition at line 1383 of file kfbxnode.h.

This property contains the global transform information of the node.

To access this property do: GlobalTransform.Get(). To set this property do: GlobalTransform.Set(KFbxXMatrix).

Default value is identity matrix

Definition at line 1392 of file kfbxnode.h.

This property contains the visibility information of the node.

To access this property do: Visibility.Get(). To set this property do: Visibility.Set(fbxDouble1).

Default value is 1.

Definition at line 1401 of file kfbxnode.h.

This property contains the weight information of the node.

To access this property do: Weight.Get(). To set this property do: Weight.Set(fbxDouble1).

Definition at line 1409 of file kfbxnode.h.

This property contains the pole vector information of the node.

To access this property do: PoleVector.Get(). To set this property do: PoleVector.Set(fbxDouble3).

Definition at line 1417 of file kfbxnode.h.

This property contains the twist information of the node.

To access this property do: Twist.Get(). To set this property do: Twist.Set(fbxDouble1).

Definition at line 1425 of file kfbxnode.h.

This property contains the world up vector information of the node.

To access this property do: WorldUpVector.Get(). To set this property do: WorldUpVector.Set(fbxDouble3).

Definition at line 1433 of file kfbxnode.h.

This property contains the up vector information of the node.

To access this property do: UpVector.Get(). To set this property do: UpVector.Set(fbxDouble3).

Definition at line 1441 of file kfbxnode.h.

This property contains the aim vector information of the node.

To access this property do: AimVector.Get(). To set this property do: AimVector.Set(fbxDouble3).

Definition at line 1449 of file kfbxnode.h.

This property contains the quaternion interpolate flag of the node.

To access this property do: QuaternionInterpolate.Get(). To set this property do: QuaternionInterpolate.Set(fbxBool1).

Default value is false.

Definition at line 1458 of file kfbxnode.h.

This property contains the rotation offset information of the node.

To access this property do: RotationOffset.Get(). To set this property do: RotationOffset.Set(fbxDouble3).

Default value is 0.,0.,0.

Definition at line 1467 of file kfbxnode.h.

This property contains the rotation pivot information of the node.

To access this property do: RotationPivot.Get(). To set this property do: RotationPivot.Set(fbxDouble3).

Default value is 0.,0.,0.

Definition at line 1476 of file kfbxnode.h.

This property contains the scaling offset information of the node.

To access this property do: ScalingOffset.Get(). To set this property do: ScalingOffset.Set(fbxDouble3).

Default value is 0.,0.,0.

Definition at line 1485 of file kfbxnode.h.

This property contains the scaling pivot information of the node.

To access this property do: ScalingPivot.Get(). To set this property do: ScalingPivot.Set(fbxDouble3).

Default value is 0.,0.,0.

Definition at line 1494 of file kfbxnode.h.

This property contains the translation active information of the node.

To access this property do: TranslationActive.Get(). To set this property do: TranslationActive.Set(fbxBool1).

Default value is false.

Definition at line 1503 of file kfbxnode.h.

This property contains the translation information of the node.

To access this property do: Translation.Get(). To set this property do: Translation.Set(fbxDouble3).

Definition at line 1511 of file kfbxnode.h.

This property contains the min translation limit information of the node.

To access this property do: TranslationMin.Get(). To set this property do: TranslationMin.Set(fbxDouble3). Default value is 0.,0.,0.

Definition at line 1520 of file kfbxnode.h.

This property contains the max translation limit information of the node.

To access this property do: TranslationMax.Get(). To set this property do: TranslationMax.Set(fbxDouble3). Default value is 0.,0.,0.

Definition at line 1529 of file kfbxnode.h.

This property contains the flag which actives the x component of min translation limit of the node.

To access this property do: TranslationMinX.Get(). To set this property do: TranslationMinX.Set(fbxBool1).

Default value is false.

Definition at line 1538 of file kfbxnode.h.

This property contains the flag which actives the y component of min translation limit of the node.

To access this property do: TranslationMinY.Get(). To set this property do: TranslationMinY.Set(fbxBool1).

Default value is false.

Definition at line 1547 of file kfbxnode.h.

This property contains the flag which actives the z component of min translation limit of the node.

To access this property do: TranslationMinZ.Get(). To set this property do: TranslationMinZ.Set(fbxBool1).

Default value is false.

Definition at line 1556 of file kfbxnode.h.

This property contains the flag which actives the x component of max translation limit of the node.

To access this property do: TranslationMaxX.Get(). To set this property do: TranslationMaxX.Set(fbxBool1).

Default value is false.

Definition at line 1565 of file kfbxnode.h.

This property contains the flag which actives the y component of max translation limit of the node.

To access this property do: TranslationMaxY.Get(). To set this property do: TranslationMaxY.Set(fbxBool1).

Default value is false.

Definition at line 1574 of file kfbxnode.h.

This property contains the flag which actives the z component of max translation limit of the node.

To access this property do: TranslationMaxZ.Get(). To set this property do: TranslationMaxZ.Set(fbxBool1).

Default value is false.

Definition at line 1583 of file kfbxnode.h.

This property contains the rotation order information of the node.

To access this property do: RotationOrder.Get(). To set this property do: RotationOrder.Set(ERotationOrder). Default value is eEULER_XYZ.

Definition at line 1592 of file kfbxnode.h.

This property contains the rotation space for limit only flag of the node.

To access this property do: RotationSpaceForLimitOnly.Get(). To set this property do: RotationSpaceForLimitOnly.Set(fbxBool1).

Default value is false.

Definition at line 1601 of file kfbxnode.h.

This property contains the x value of the rotation stiffness of the node.

To access this property do: RotationStiffnessX.Get(). To set this property do: RotationStiffnessX.Set(fbxDouble1).

Default value is 0.

Definition at line 1610 of file kfbxnode.h.

This property contains the y value of the rotation stiffness of the node.

To access this property do: RotationStiffnessY.Get(). To set this property do: RotationStiffnessY.Set(fbxDouble1).

Default value is 0.

Definition at line 1619 of file kfbxnode.h.

This property contains the z value of the rotation stiffness of the node.

To access this property do: RotationStiffnessZ.Get(). To set this property do: RotationStiffnessZ.Set(fbxDouble1).

Default value is 0.

Definition at line 1628 of file kfbxnode.h.

This property contains axis length information of the node.

To access this property do: AxisLen.Get(). To set this property do: AxisLen.Set(fbxDouble1).

Default value is 10.

Definition at line 1637 of file kfbxnode.h.

This property contains pre-rotation information of the node.

To access this property do: PreRotation.Get(). To set this property do: PreRotation.Set(fbxDouble3).

Default value is 0.,0.,0.

Definition at line 1646 of file kfbxnode.h.

This property contains post-rotation information of the node.

To access this property do: PostRotation.Get(). To set this property do: PostRotation.Set(fbxDouble3).

Default value is 0.,0.,0.

Definition at line 1655 of file kfbxnode.h.

This property contains rotation active information of the node.

To access this property do: RotationActive.Get(). To set this property do: RotationActive.Set(fbxBool1).

Default value is false.

Definition at line 1664 of file kfbxnode.h.

This property contains the min rotation limit information of the node.

To access this property do: RotationMin.Get(). To set this property do: RotationMin.Set(fbxDouble3).

Default value is 0.,0.,0.

Definition at line 1673 of file kfbxnode.h.

This property contains the max rotation limit information of the node.

To access this property do: RotationMax.Get(). To set this property do: RotationMax.Set(fbxDouble3).

Default value is 0.,0.,0.

Definition at line 1682 of file kfbxnode.h.

This property contains the flag which actives the x component of min rotation limit of the node.

To access this property do: RotationMinX.Get(). To set this property do: RotationMinX.Set(fbxBool1).

Default value is false.

Definition at line 1691 of file kfbxnode.h.

This property contains the flag which actives the y component of min rotation limit of the node.

To access this property do: RotationMinY.Get(). To set this property do: RotationMinY.Set(fbxBool1).

Default value is false.

Definition at line 1700 of file kfbxnode.h.

This property contains the flag which actives the z component of min rotation limit of the node.

To access this property do: RotationMinZ.Get(). To set this property do: RotationMinZ.Set(fbxBool1).

Default value is false.

Definition at line 1709 of file kfbxnode.h.

This property contains the flag which actives the x component of max rotation limit of the node.

To access this property do: RotationMaxX.Get(). To set this property do: RotationMaxX.Set(fbxBool1).

Default value is false.

Definition at line 1718 of file kfbxnode.h.

This property contains the flag which actives the y component of max rotation limit of the node.

To access this property do: RotationMaxY.Get(). To set this property do: RotationMaxY.Set(fbxBool1).

Default value is false.

Definition at line 1727 of file kfbxnode.h.

This property contains the flag which actives the z component of max rotation limit of the node.

To access this property do: RotationMaxZ.Get(). To set this property do: RotationMaxZ.Set(fbxBool1).

Default value is false.

Definition at line 1736 of file kfbxnode.h.

This property contains inherit type information of the node.

To access this property do: InheritType.Get(). To set this property do: InheritType.Set(ETransformInheritType).

Default value is eINHERIT_RrSs.

Definition at line 1745 of file kfbxnode.h.

This property contains scaling active information of the node.

To access this property do: ScalingActive.Get(). To set this property do: ScalingActive.Set(fbxBool1).

Default value is false.

Definition at line 1754 of file kfbxnode.h.

This property contains scaling information of the node.

To access this property do: Scaling.Get(). To set this property do: Scaling.Set(fbxDouble3).

Definition at line 1762 of file kfbxnode.h.

This property contains the min scaling limit information of the node.

To access this property do: ScalingMin.Get(). To set this property do: ScalingMin.Set(fbxDouble3).

Default value is 0.,0.,0.

Definition at line 1771 of file kfbxnode.h.

This property contains the max scaling limit information of the node.

To access this property do: ScalingMax.Get(). To set this property do: ScalingMax.Set(fbxDouble3).

Default value is 1.,1.,1.

Definition at line 1780 of file kfbxnode.h.

This property contains the flag which actives the x component of min scaling limit of the node.

To access this property do: ScalingMinX.Get(). To set this property do: ScalingMinX.Set(fbxBool1).

Default value is false.

Definition at line 1789 of file kfbxnode.h.

This property contains the flag which actives the y component of min scaling limit of the node.

To access this property do: ScalingMinY.Get(). To set this property do: ScalingMinY.Set(fbxBool1).

Default value is false.

Definition at line 1798 of file kfbxnode.h.

This property contains the flag which actives the z component of min scaling limit of the node.

To access this property do: ScalingMinZ.Get(). To set this property do: ScalingMinZ.Set(fbxBool1).

Default value is false.

Definition at line 1807 of file kfbxnode.h.

This property contains the flag which actives the x component of max scaling limit of the node.

To access this property do: ScalingMaxX.Get(). To set this property do: ScalingMaxX.Set(fbxBool1).

Default value is false.

Definition at line 1816 of file kfbxnode.h.

This property contains the flag which actives the y component of max scaling limit of the node.

To access this property do: ScalingMaxY.Get(). To set this property do: ScalingMaxY.Set(fbxBool1).

Default value is false.

Definition at line 1825 of file kfbxnode.h.

This property contains the flag which actives the z component of max scaling limit of the node.

To access this property do: ScalingMaxZ.Get(). To set this property do: ScalingMaxZ.Set(fbxBool1).

Default value is false.

Definition at line 1834 of file kfbxnode.h.

This property contains geometric translation information of the node.

To access this property do: GeometricTranslation.Get(). To set this property do: GeometricTranslation.Set(fbxDouble3).

Default value is 0.,0.,0.

Definition at line 1843 of file kfbxnode.h.

This property contains geometric rotation information of the node.

To access this property do: GeometricRotation.Get(). To set this property do: GeometricRotation.Set(fbxDouble3).

Default value is 0.,0.,0.

Definition at line 1852 of file kfbxnode.h.

This property contains geometric scaling information of the node.

To access this property do: GeometricScaling.Get(). To set this property do: GeometricScaling.Set(fbxDouble3).

Default value is 1.,1.,1.

Definition at line 1861 of file kfbxnode.h.

This property contains the x component of the minimum damp range angles of the node.

To access this property do: MinDampRangeX.Get(). To set this property do: MinDampRangeX.Set(fbxDouble1).

Default value is 0.

Definition at line 1873 of file kfbxnode.h.

This property contains the y component of the minimum damp range angles of the node.

To access this property do: MinDampRangeY.Get(). To set this property do: MinDampRangeY.Set(fbxDouble1).

Default value is 0.

Definition at line 1882 of file kfbxnode.h.

This property contains the z component of the minimum damp range angles of the node.

To access this property do: MinDampRangeZ.Get(). To set this property do: MinDampRangeZ.Set(fbxDouble1).

Default value is 0.

Definition at line 1891 of file kfbxnode.h.

This property contains the x component of the maximum damp range angles of the node.

To access this property do: MaxDampRangeX.Get(). To set this property do: MaxDampRangeX.Set(fbxDouble1).

Default value is 0.

Definition at line 1900 of file kfbxnode.h.

This property contains the y component of the maximum damp range angles of the node.

To access this property do: MaxDampRangeY.Get(). To set this property do: MaxDampRangeY.Set(fbxDouble1).

Default value is 0.

Definition at line 1909 of file kfbxnode.h.

This property contains the z component of the maximum damp range angles of the node.

To access this property do: MaxDampRangeZ.Get(). To set this property do: MaxDampRangeZ.Set(fbxDouble1).

Default value is 0.

Definition at line 1918 of file kfbxnode.h.

This property contains the x component of the minimum damp strength of the node.

To access this property do: MinDampStrengthX.Get(). To set this property do: MinDampStrengthX.Set(fbxDouble1).

Default value is 0.

Definition at line 1927 of file kfbxnode.h.

This property contains the y component of the minimum damp strength of the node.

To access this property do: MinDampStrengthY.Get(). To set this property do: MinDampStrengthY.Set(fbxDouble1).

Default value is 0.

Definition at line 1936 of file kfbxnode.h.

This property contains the z component of the minimum damp strength of the node.

To access this property do: MinDampStrengthZ.Get(). To set this property do: MinDampStrengthZ.Set(fbxDouble1).

Default value is 0.

Definition at line 1945 of file kfbxnode.h.

This property contains the x component of the maximum damp strength of the node.

To access this property do: MaxDampStrengthX.Get(). To set this property do: MaxDampStrengthX.Set(fbxDouble1).

Default value is 0.

Definition at line 1954 of file kfbxnode.h.

This property contains the y component of the maximum damp strength of the node.

To access this property do: MaxDampStrengthY.Get(). To set this property do: MaxDampStrengthY.Set(fbxDouble1).

Default value is 0.

Definition at line 1963 of file kfbxnode.h.

This property contains the z component of the maximum damp strength of the node.

To access this property do: MaxDampStrengthZ.Get(). To set this property do: MaxDampStrengthZ.Set(fbxDouble1).

Default value is 0.

Definition at line 1972 of file kfbxnode.h.

This property contains the x component of the preferred angle of the node.

To access this property do: PreferedAngleX.Get(). To set this property do: PreferedAngleX.Set(fbxDouble1).

Default value is 0.

Definition at line 1981 of file kfbxnode.h.

This property contains the y component of the preferred angle of the node.

To access this property do: PreferedAngleY.Get(). To set this property do: PreferedAngleY.Set(fbxDouble1).

Default value is 0.

Definition at line 1990 of file kfbxnode.h.

This property contains the z component of the preferred angle of the node.

To access this property do: PreferedAngleZ.Get(). To set this property do: PreferedAngleZ.Set(fbxDouble1).

Default value is 0.

Definition at line 1999 of file kfbxnode.h.

This property contains lookat property of the node.

To access this property do: LookAtProperty.Get(). To set this property do: LookAtProperty.Set(fbxReference*).

Definition at line 2008 of file kfbxnode.h.

This property contains the up vector property of the node.

To access this property do: UpVectorProperty.Get(). To set this property do: UpVectorProperty.Set(fbxReference*).

Definition at line 2016 of file kfbxnode.h.

This property contains show information of the node.

To access this property do: Show.Get(). To set this property do: Show.Set(fbxBool1).

Default value is true.

Definition at line 2025 of file kfbxnode.h.

This property contains negative percent shape support information of the node.

To access this property do: NegativePercentShapeSupport.Get(). To set this property do: NegativePercentShapeSupport.Set(fbxBool1).

Default value is true.

Definition at line 2034 of file kfbxnode.h.

This property contains default attribute index information of the node.

To access this property do: DefaultAttributeIndex.Get(). To set this property do: DefaultAttributeIndex.Set(fbxInteger1).

Default value is -1.

Definition at line 2043 of file kfbxnode.h.

This property contains manipulation state information of the node.

To access this property do: Freeze.Get(). To set this property do: Freeze.Set(fbxBool1).

Default value is false.

Definition at line 2052 of file kfbxnode.h.

This property contains level of detail mode information of the node.

To access this property do: LODBox.Get(). To set this property do: LODBox.Set(fbxBool1).

True: Bounding box False: Geometry object is displayed. Default value is false.

Definition at line 2063 of file kfbxnode.h.

KFbxNode KFbxNode KFbxNode KFbxNode KFbxNode KFbxNode KFbxNode KFbxNode KFbxNode KFbxNode
KFbxNode KFbxNode KFbxNode KFbxNode KFbxNode KFbxNode KFbxNode KFbxNode KFbxNode KFbxNode